package com.dxy.dataManage.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dxy.dataManage.bean.File;
import com.dxy.dataManage.mapper.FileMapper;
import com.dxy.dataManage.service.FileService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author dxy
 * @version 1.0
 */
@Service
public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements FileService {
    @Resource
    private FileMapper fileMapper;




    @Override
    public List<File> findByType(String type, String componyName) {
        List<File> files = fileMapper.findByType(type, componyName);
        return files;
    }

    @Override
    public List<File> listFileByNameOrType(String name, String type,String componyName) {
        System.out.println("FileServiceImpl--listFileByNameOrType");
////========================================================
//        Page<?> page=PageHelper.startPage(pageNum,pageSize);  //设置第几条记录开始，多少条记录为一页
//
//        //通过userService获取user的信息，其sql语句为"select * from user" 但因pagehelp已经注册为插件，所以pagehelp会在原sql语句上增加limit，从而实现分页
//
//
//        PageInfo<?> pageHelper=page.toPageInfo(); //获取页面信息的对象，里面封装了许多页面的信息 如：总条数，当前页码，需显示的导航页等等
//
//        request.getRequestDispatcher("/persons.jsp").forward(request,response);
////========================================================
        return fileMapper.listFileByNameOrType(name, type,componyName);
    }

    @Override
    public List<File> findByState(String state, String componyName) {
        return fileMapper.findByState(state, componyName);
    }

    @Override
    public String fileUpload(MultipartFile[] files) throws IOException {
        if (files.length != 0) {
            String urlList = "";
            String url;
            SimpleDateFormat formatter= new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");
            String date = formatter.format(new Date(System.currentTimeMillis()));
            for (MultipartFile file : files) {
                if (!file.isEmpty()) {
//                    获取文件名
                    String originalFilename = file.getOriginalFilename();
//                    创建目录
                    String dirStr = "d:\\temp_upload\\" + date;
                    java.io.File fileDir = new java.io.File(dirStr);
                    if (!fileDir.mkdir()){
                        fileDir.mkdirs();
                    }
//                    制作url
                    url = dirStr + "\\" + originalFilename;
//                    制作urlList用于返回
                    if (!StringUtils.hasText(urlList)){
                        urlList = url;
                    }else {
                        urlList = urlList + ";" + url;
                    }

//                    保存文件
                    file.transferTo(new java.io.File(url));
                }
            }
            return urlList;
        }
        return null;
    }

    @Override
    public List<File> getProcessFile(Long id) {
        System.out.println("id=" + id);
        return fileMapper.getProcessFile(id);
    }
//
//    @Override
//    public List<java.io.File> fileDown(String url) {
//        String[] urlStr = url.split("；");
//        List<java.io.File> fileList = new ArrayList<java.io.File>();
//        for (String s : urlStr) {
//            //先获取到你要下载的文件 InputStream
//            InputStream is = session.getServletContext().getResourceAsStream("/img/shunping.jpg")
//        }
//    }


}
